#include <iostream>
#include <list>
#include <deque>

using namespace std;

namespace YX
{
    template<typename T,typename Container=list<T>>
    class queue 
    {   
        private:
            Container _con;

        public:

            bool empty()
            {
                return _con.empty();
            }

            size_t size()
            {
                return _con.size();
            }

            T& front()
            {
                return _con.front();
            }

            T& back()
            {
                return _con.back();
            }

            void push(const T& x)
            {
                _con.push_back(x);
            }

            void pop()
            {
                _con.pop_front();
            }

    };
};
